home *** CD-ROM | disk | FTP | other *** search
Wrap
uuuussssrrrrvvvvmmmmeeee((((7777MMMM)))) uuuussssrrrrvvvvmmmmeeee((((7777MMMM)))) NNNNAAAAMMMMEEEE usrvme - User level VME Bus adapter interface. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN The _u_s_r_v_m_e interface provides access to VME bus address spaces from user processes. CCCChhhhaaaalllllllleeeennnnggggeeee aaaannnndddd OOOOnnnnyyyyxxxx SSSSyyyysssstttteeeemmmmssss On Challenge and Onyx systems, access to VME bus address spaces are provided by special files. They're named according to the following convention: ////ddddeeeevvvv////vvvvmmmmeeee////vvvvmmmmeeee<<<<aaaaddddaaaapppptttteeeerrrr>>>>aaaa<<<<aaaaddddddddrrrreeeessssssss----ssssppppaaaacccceeee>>>><<<<aaaaddddddddrrrreeeessssssss----mmmmooooddddeeee>>>> <adapter> is the number of VME bus adapter. <address-space> is one of {_1111_6666, _2222_4444, _3333_2222}. <address-mode> is either _nnnn for non-privileged or _ssss for supervisory. For instance, address space 16 in non-privileged mode on adapter 0 would be referred to as /_d_e_v/_v_m_e/_v_m_e_0_a_1_6_n. The kernel driver for user level VME is referred to as _u_s_r_v_m_e. If VME busses are added to an existing system, it may be necessary to run _M_A_K_E_D_E_V(1M) specifying a target of _u_s_r_v_m_e in order to have the additional /_d_e_v/_v_m_e devices created. OOOOrrrriiiiggggiiiinnnn2222000000000000 aaaannnndddd OOOOnnnnyyyyxxxx2222 SSSSyyyysssstttteeeemmmmssss On Origin2000 and Onyx2 systems, VME bus address spaces can be accessed by hardware graph vertices. The vertices are named by the following convention: ////hhhhwwww////vvvvmmmmeeee////<<<<aaaaddddaaaapppptttteeeerrrr>>>>////uuuussssrrrrvvvvmmmmeeee////<<<<aaaaddddddddrrrreeeessssssss----ssssppppaaaacccceeee>>>>////<<<<ddddaaaattttaaaa----wwwwiiiiddddtttthhhh>>>> <adapter> is the number of VME bus adapter. <address-space> is the code for address space. It could be one of {_aaaa_3333_2222_ssss,_aaaa_3333_2222_nnnn, _aaaa_2222_4444_ssss, _aaaa_2222_4444_nnnn, _aaaa_1111_6666_ssss, _aaaa_1111_6666_nnnn}. <data-width> is the maximum PIO data width on VME bus. It could be one of {_dddd_6666_4444, _dddd_3333_2222, _dddd_1111_6666, _dddd_8888} in A32 space, or one of {_dddd_3333_2222, _dddd_1111_6666, _dddd_1111_6666, _dddd_8888} in A24 and A16 spaces. EEEErrrrrrrroooorrrr HHHHaaaannnnddddlllliiiinnnngggg Not all addresses can be read from or written to because of read-only or write-only registers and unequipped addresses. Reads or writes to invalid VME bus addresses will normally result in a SIGBUS signal being sent to the offending process. On CHALLENGE, ONYX, Origin2000, and ONYX2 systems, writes to an invalid VME bus address are asynchronous, processor does not wait for the PPPPaaaaggggeeee 1111 uuuussssrrrrvvvvmmmmeeee((((7777MMMM)))) uuuussssrrrrvvvvmmmmeeee((((7777MMMM)))) completion of write operation. If write operation fails, it could take up to 10 millisecs for the user VME process to be signalled about failed write. (Note that VME bus timeout is about 80 microsecs on Challenge and Onyx systems, 64 microseconds on Origin2000 and Onyx2 systems.) So, if the user VME process has to confirm that the write completed successfully, it should wait for about 10 millisecs. If the user VME process has already terminated by the time kernel gets the VME write error interrupt, a message is sent to SYSLOG indicating the VME Adapter number, and failed VME bus address. If multiple processes have the mapping for the VME address which got an error, all of them would be sent SIGBUS signal. SSSSEEEEEEEE AAAALLLLSSSSOOOO "IRIX Device Driver Programmer's Guide" hinv(1M) MAKEDEV(1M) -- on Challenge and Onyx systems. PPPPaaaaggggeeee 2222